﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SalaDeEnsayo.WebApplication.SecurityAttributes.AuthorizationAttributes
{
    /// <summary>
    /// Permite definir un listado de nombres de tareas que corresponden a la ejecución del método o de algún método de la clase.
    /// El método podrá ser ejecutado si tanto el como su clase poseen este atributo y la persona que lo ejecuta tiene permisos
    /// sobre alguna de las tareas definidas en el constructor (debe tener permisos para al menos una tarea del servicio 
    /// y una de la clase, en caso de estar definido el atributo en ambas partes).
    /// </summary>
    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
    public class RolPermisoEjecucionAttribute : Attribute
    {
        #region Propiedades
        public string NombreRol
        {
            get;
            private set;
        }
        #endregion

        /// <summary>
        /// Constructor para el atributo TaskExecutionAuthorizationAttribute
        /// </summary>
        /// <param name="taskNames">La lista de nombres de tareas que se validarán para la autorización, separados por coma</param>
        public RolPermisoEjecucionAttribute(string nombreRol)
        {
            this.NombreRol = nombreRol;
        }
    }
}
